西门子PLC循环左、右移位指令的使用
循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表6。
(1)循环左移位指令(ROL)
使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。
(2)循环右移位指令(ROR)
使能输入有效时,将IN输入无符号数(字节、字或双字)循环右移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。
(3)移位次数N≥数据类型(B、W、D)时的移位位数的处理
如果操作数是字节,当移位次数N≥8时,则在执行循环移位前,先对N进行模8操作(N除以8后取余数),其结果0-7为实际移动位数。
如果操作数是字,当移位次数N≥16时,则在执行循环移位前,先对N进行模16操作(N除以16后取余数),其结果0-15为实际移动位数。
如果操作数是双字,当移位次数N≥32时,则在执行循环移位前,先对N进行模32操作(N除以32后取余数),其结果0-31为实际移动位数。
(4)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。
表6 循环左、右移位指令格式及功能
LAD
STL
RLB OUT,N
RRB OUT,N
RLW OUT,N
RRW OUT,N
RLD OUT,N
RRD OUT,N
操作数及数据类型
IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。
OUT:VB, IB, QB, MB, SB, SMB, LB, AC。
数据类型:字节
IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。
OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。
数据类型:字
IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。
OUT:VD, ID, QD, MD, SD, SMD, LD, AC。
数据类型:双字
N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节。
功能
ROL:字节、字、双字循环左移N位;ROR:字节、字、双字循环右移N位。
说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVB IN,OUT
SLB OUT,N
提交
助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案
车规MOSFET技术确保功率开关管的可靠性和强电流处理能力
未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?
2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会
2023钢铁展洽会4月全新起航 将在日照触发更多商机